// 简单的翻译系统
import zh_CN_common from './dev/locales/zh_CN/common/common.json'
import zh_CN_assets from './dev/locales/zh_CN/assets/assets.json'
import en_US_common from './dev/locales/en_US/common/common.json'
import en_US_assets from './dev/locales/en_US/assets/assets.json'

// 翻译资源
const translations = {
  'zh-CN': {
    common: zh_CN_common,
    assets: zh_CN_assets
  },
  'en-US': {
    common: en_US_common,
    assets: en_US_assets
  }
}

// 调试：检查翻译资源加载情况
console.log('=== 翻译资源加载调试 ===')
console.log('zh_CN_common:', zh_CN_common)
console.log('zh_CN_assets:', zh_CN_assets)
console.log('translations 结构:', translations)
console.log('translations["zh-CN"]:', translations['zh-CN'])

// 语言映射函数
function normalizeLanguage(lang) {
  if (!lang) return 'zh-CN'

  // 处理语言代码映射
  const languageMap = {
    'zh': 'zh-CN',
    'zh-cn': 'zh-CN',
    'zh-CN': 'zh-CN',
    'en': 'en-US',
    'en-us': 'en-US',
    'en-US': 'en-US'
  }

  return languageMap[lang] || 'zh-CN'
}

// 当前语言
let currentLanguage = normalizeLanguage(localStorage.getItem('i18nextLng'))

// 初始化状态
let isInitialized = false

// 初始化函数
function initialize() {
  console.log('=== 初始化调试信息 ===')
  console.log('初始化状态:', isInitialized)
  console.log('当前语言:', currentLanguage)
  console.log('可用语言:', Object.keys(translations))

  if (!isInitialized) {
    // 确保翻译资源已加载
    if (translations[currentLanguage]) {
      isInitialized = true
      console.log('✅ 简单翻译系统初始化完成')
      console.log('当前语言:', currentLanguage)
      console.log('当前语言翻译资源结构:', Object.keys(translations[currentLanguage]))
    } else {
      console.error('❌ 翻译系统初始化失败 - 未找到当前语言的翻译资源')
      console.log('期望语言:', currentLanguage)
      console.log('可用语言:', Object.keys(translations))
    }
  }
  return isInitialized
}

// 设置语言
export function setLanguage(lang) {
  const normalizedLang = normalizeLanguage(lang)
  currentLanguage = normalizedLang
  localStorage.setItem('i18nextLng', lang) // 保存原始语言代码
  console.log('语言设置为:', lang, '-> 标准化为:', normalizedLang)

  // 重新初始化
  isInitialized = false
  initialize()

  return Promise.resolve() // 兼容异步调用
}

// 获取当前语言
export function getCurrentLanguage() {
  return currentLanguage
}

// 翻译函数
export function t(key) {
  // 只在第一次调用时显示调试信息
  if (!window._i18nDebugShown) {
    console.log('=== 翻译系统状态 ===')
    console.log('当前语言:', currentLanguage)
    console.log('初始化状态:', isInitialized)
    console.log('可用翻译语言:', Object.keys(translations))
    window._i18nDebugShown = true
  }

  // 确保初始化
  if (!initialize()) {
    console.error('❌ 翻译系统未初始化，返回原键:', key)
    console.log('翻译资源状态:', translations)
    return key
  }

  // console.log(`✅ 简单翻译请求: ${key}, 当前语言: ${currentLanguage}`)

  const parts = key.split('.')
  const translation = translations[currentLanguage]

  if (!translation) {
    console.error(`❌ 未找到语言 ${currentLanguage} 的翻译资源`)
    return key
  }

  // 处理嵌套键，如 assets.navigation.dashboard
  let result = translation

  for (let i = 0; i < parts.length; i++) {
    const part = parts[i]

    if (result && typeof result === 'object' && result[part]) {
      result = result[part]
    } else {
      console.error(`❌ 未找到键: ${key} 在部分: ${part}`)
      console.log('可用的键:', result && typeof result === 'object' ? Object.keys(result) : '无')
      return key
    }
  }

  if (typeof result === 'string') {
    // console.log(`✅ 翻译成功: ${key} -> ${result}`)
    return result
  } else {
    // console.error(`❌ 翻译结果不是字符串: ${key}`, result)
    return key
  }
}

// 立即初始化
// console.log('=== 文件加载时的调试信息 ===')
// console.log('文件加载时的当前语言:', currentLanguage)
// console.log('文件加载时的翻译资源:', translations)
// console.log('localStorage中的语言设置:', localStorage.getItem('i18nextLng'))

initialize()
// console.log('初始化后可用翻译:', Object.keys(translations))
// console.log('测试翻译 common.welcome:', t('common.welcome'))
// console.log('测试翻译 assets.common.welcome:', t('assets.common.welcome'))
